package com.tarena.lbs.coupon.service;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.coupon.pojo.param.CouponParam;
import com.tarena.lbs.coupon.pojo.query.CouponQuery;
import com.tarena.lbs.coupon.pojo.query.UserCouponCodeQuery;
import com.tarena.lbs.coupon.pojo.query.UserCouponQuery;
import com.tarena.lbs.coupon.pojo.vo.CouponVO;
import com.tarena.lbs.coupon.pojo.vo.UserCouponsVO;

public interface CouponService {

    void addCoupon(CouponParam couponParam);

    PageResult<CouponVO> pageList(CouponQuery query);

    CouponVO detail(Integer id);

    PageResult<UserCouponsVO> receiveList(UserCouponQuery couponQuery);

    UserCouponsVO receiveDetail(UserCouponCodeQuery query) throws BusinessException;

//    void receiveCoupon(UserCouponsParam param) throws BusinessException;
//
//    void doReceiveCoupon(UserCouponsParam param, Integer userId, ActivityPO activity, CouponPO coupon) throws BusinessException;
}
